
import { request } from "./index";
import nprogress from "nprogress";
import "nprogress/nprogress.css";
import store from '@/store';

// 配置请求拦截器
request.interceptors.request.use((config) => {
  nprogress.start();

  // 获取用户临时身份信息的值，然后随着header的【userTempId】字段发送
  let userTempId = store.state.user.userTempId;
  // 获取请求头的信息
  config.headers.userTempId = userTempId;

  //如果用户登录了,我们需要在header中携带token(用来请求后端数据时进行鉴权操作)
  const token = store.state.user.token;
  config.headers.token = token;

  return config;
});

// 当登录输入账号密码发起服务请求的 时候，是响应status：200成功状态的，即使是账号密码错误也是200，所以我们需要单独存储一份数据，当账号密码错误时候，

// 配置响应拦截器
request.interceptors.response.use(
  (response) => {
    // console.log(response, "response");
    // 只要进入响应拦截器就关闭进度条
    nprogress.done();
    // 服务器存储了一份状态数据，只有当登录成功code码为200 时候，才允许登录系统
    if (response.data.code === 200) {
      return response.data.data;
    } else {
      return Promise.reject({ message: response.data.message });
    }
  },
  (error) => {
    nprogress.done();
    return Promise.reject(error);
  }
);

export default request;
